home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / gag / walkingman.lha / WalkingMan / Sources / Darstellung / Darstellung.c next >
C/C++ Source or Header  |  1992-08-04  |  4KB  |  149 lines

  1. /* JPK14.04.92-24.04.92+05.05.92 */
  2.  
  3. #define DISP_PRIVAT
  4. #include "Darstellung/Darstellung.h"
  5.  
  6.  
  7.     /***** private Daten *****/
  8.  
  9. UWORD Alternative_warten;
  10.  
  11. struct Disp_Bild Bildfolge[] =
  12.     {
  13.       0,768,     7,7,        6,9,        /* (0) Stehen        */
  14.      48,768,     8,8,        6,7,        /* (1) Sitzen        */
  15.      96,768,     9,9,        5,9,        /* (2) Fallen        */
  16.     144,720,    10,10,    2,8,    /* ( 3) Rechtsgehend    */
  17.     336,672,    17,17,    9,8,    /* ( 4) Linksgehend    */
  18.     648,768,    27,27,    6,8,        /* (5) Linkskletternd    */
  19.     576,768,    24,24,    5,8,        /* (6) Rechtskletternd    */
  20.  
  21.      24,792,    0,DISP_JONGLEUR,    6,9,        /* (7) Stehen 2    */
  22.      72,792,    1,1,                    6,7,        /* (8) Sitzen 2    */
  23.     120,792,    2,2,                    5,9,        /* (9) Fallen 2    */
  24.  
  25.     168,744,    11,11,    2,8,    /* (10) rGehend 2    */
  26.     192,720,    12,12,    2,8,    /* (11) rGehend 3    */
  27.     216,744,    13,13,    2,8,    /* (12) rGehend 4    */
  28.     240,720,    14,14,    2,9,    /* (13) rGehend 5    */
  29.     264,744,    15,15,    2,9,    /* (14) rGehend 6    */
  30.     288,720,    16,16,    2,9,    /* (15) rGehend 7    */
  31.     312,744,     3,3,        2,9,    /* (16) rGehend 8    */
  32.  
  33.     360,696,    18,18,    9,8,    /* (17) lGehend 2    */
  34.     384,672,    19,19,    9,8,    /* (18) lGehend 3    */
  35.     408,696,    20,20,    9,8,    /* (19) lGehend 4    */
  36.     432,672,    21,21,    9,9,    /* (20) lGehend 5    */
  37.     456,696,    22,22,    9,9,    /* (21) lGehend 6    */
  38.     480,672,    23,23,    9,9,    /* (22) lGehend 7    */
  39.     504,696,     4,4,        9,9,    /* (23) lGehend 8    */
  40.  
  41.     528,792,    25,25,    5,9,        /* (24) rKletternd 2    */
  42.     552,768,    26,26,    5,8,        /* (25) rKletternd 3    */
  43.     576,792,     6,6,        5,8,        /* (26) rKletternd 4    */
  44.  
  45.     600,792,    28,28,    6,9,        /* (27) lKletternd 2    */
  46.     624,768,    29,29,    6,8,        /* (28) lKletternd 3    */
  47.     648,792,     5,5,        6,8,        /* (29) lKletternd 4    */
  48.  
  49.     ~0,~0,    30,30,    0,0,    /* (30) unsichtbar    */
  50.  
  51.      ~24,~24,    32,32,    3,8,        /* (31) Jongleur 1    */
  52.      ~48,~48,    33,33,    3,8,        /* (32) Jongleur 2    */
  53.      ~72,~72,    34,34,    3,8,        /* (33) Jongleur 3    */
  54.      ~96,~96,    35,35,    3,8,        /* (34) Jongleur 4    */
  55.     ~120,~120,    36,36,    3,8,        /* (35) Jongleur 5    */
  56.     ~144,~144,    37,37,    3,8,        /* (36) Jongleur 6    */
  57.     ~168,~168,    38,38,    3,8,        /* (37) Jongleur 7    */
  58.     ~192,~192,    39,39,    3,8,        /* (38) Jongleur 8    */
  59.     ~216,~216,    40,40,    3,8,        /* (39) Jongleur 9    */
  60.     ~240,~240,    31,31,    3,8,        /* (40) Jongleur 10    */
  61.     };
  62.  
  63.  
  64.     /***** Funktionen *****/
  65.  
  66. void Disp_Init()
  67.     {
  68.     Alternative_warten = SEK60_0+Zufall_C_Wert((long)SEK60_0);
  69.     }
  70.  
  71. void Disp_Clear()
  72.     {
  73.     struct Preferences PrefBuffer;
  74.                                             /* Mauszeigerfarben wiederherstellen    */
  75.     SetPrefs(
  76.         GetPrefs(&PrefBuffer, (long)sizeof(PrefBuffer)),
  77.         (long)sizeof(PrefBuffer), 0L);
  78.     }
  79.  
  80. void Disp_Schritt(mann)
  81. struct Manneintrag *mann;
  82.     {
  83.     UWORD    *matrix;
  84.     WORD    offset;
  85.  
  86.     Alternative_warten--;
  87.     if(!Alternative_warten)
  88.         {
  89.         if(Zufall_Muenzwurf())
  90.             {
  91.             mann->bild = Bildfolge[mann->bild].alternativ;
  92.             mann->Warten = SEK30_0;
  93.             }
  94.         Alternative_warten = 1+Zufall_C_Wert((long)SEK60_0);
  95.         }
  96.  
  97.     offset = Bildfolge[mann->bild].MapBeginn[mann->nacht];
  98.     if(offset>=0)
  99.         matrix = &mann->grafik.map[offset];
  100.     else
  101.         {
  102.         matrix = &Mann_Statisch[~offset];
  103.         Alternative_warten = SEK60_0;                /* kein anderes Männchen    */
  104.         }                                                    /*        gleichzeitig!            */
  105.     if(matrix != mann->sprite.posctldata)
  106.         ChangeSprite(0L, &mann->sprite, matrix);
  107.  
  108.     MoveSprite(0L, &mann->sprite,
  109.         (long)((mann->posX>>KOMMA) - Bildfolge[mann->bild].spotX),
  110.         (long)((mann->posY>>KOMMA) - Bildfolge[mann->bild].spotY));
  111.  
  112.     mann->bild = Bildfolge[mann->bild].weiter;
  113.     Analyse_Nachttest(mann);
  114.     }
  115.  
  116. char Disp_Neu(mann)
  117. struct Manneintrag *mann;
  118.     {
  119.     WORD spritenr;
  120.  
  121.     mann->grafik = Mann_Grafik;
  122.     mann->sprite.height = MANN_HOEHE;
  123.     mann->sprite.posctldata = &Mann_Statisch[0];
  124.     switch(mann->Bewegungsart)
  125.         {
  126.         case gehen:
  127.             mann->bild = DISP_STEHEND;
  128.             break;
  129.         case fallen:
  130.             mann->bild = DISP_FALLEND;
  131.             break;
  132.         }
  133.  
  134.     spritenr = GetSprite(&mann->sprite, -1L);
  135.     if(spritenr<0)
  136.         return(Fehler());
  137.     eigene_Sprites += 1<<spritenr;
  138.  
  139.     return(1);
  140.     }
  141.  
  142. void Disp_Alt(mann)
  143. struct Manneintrag *mann;
  144.     {
  145.     eigene_Sprites -= 1<<mann->sprite.num;
  146.     FreeSprite((long)mann->sprite.num);
  147.     }
  148.  
  149.